Computer software may be divided into two types: operating systems and applications programs. An operating system controls the overall operation of a computer system. An operating system which originates from a storage source, such as a diskette, that is external to the computer is known as a disk operating system while an operating system located in read-only memory is known as firmware. Unless the entire operating system is located in firmware, the firmware of a computer system contains at least a "bootstrap loader" for loading the disk operating system. Applications software, typically originating from an external source, contains instructions for accomplishing a particular task and is executed through the operating system: the operation of the computer as instructed by the applications program is coordinated by the operating system.
External storage is easily transferred to other software-compatible machines and programs in the external storage is easily copied into other storage unless a suitable security system is provided. Unauthorized use or pirating of both types of computer software deprives the computer industry of millions of dollars annually.
There have been a number of attempts to curb software piracy. One of the earlier methods placed serial numbers in the software to allow tracing of unauthorized copies of the serialized software. This method requires the nearly impossible task of external enforcement to track down illegal copies. Further, these serial numbers can be located and erased.
One approach, the copy protection method, attempts to foil detection and erasure by scattering the application program in different sectors of the program storage disk. The entire disk must be copied to ensure that all portions of the program are copied; the serial number is hidden in the format to ensure that it is copied as well. The copy protection method makes deletion of the serial number more difficult, but does not overcome the problem of enforcement.
Another system uses a hardware key containing a code that matches the serial number for a particular software. The software cannot be run on a computer unless the matching key is inserted in a port of the computer. The problem with this approach is that both the key and the disk are transferrable to other machines.
Mechanisms for preventing copying, known as copy locks, attempt to prevent unauthorized progeny of a particular piece of software. However the copy locks can be circumvented and do not allow legitimate back-up copies to be made for archives.
Several protection methods limit the lifetime of program operation. One method employs a counter, located in software, which allows a predetermined number of startings of a host program before destroying the program. Once started, however, the program can be indefinitely maintained in an unaltered state.
In another method, a "parasite" is introduced after each stopping of a program: one byte in the program is changed in a predetermined manner after each stop. The parasite introduction commands are located in format which is normally not copyable. Also specified in format is a "parasite killer" which restores altered bytes to their original condition. As in the previous method, the protection system can be defeated by maintaining the program without further stopping and starting. Further, special programs are available to copy the entire disk including format containing the parasite killer. This replicated parasite killer can then be used to restore parasites in the replicated disk and in other unauthorized copies as well.
Some software vendors for mainframe computers place a calendar date in a clock in hardware. Software programs match their ending calendar date with that of the clock and do not function if the ending calendar date has expired. Vendors reprogram the clock after renewal fees are paid. This method is defeated by advancing the ending calendar date in the programs.
Copyright protection and licensing agreements between the manufacturer and the user afford legal protection but suffer from the problems of enforcement. To date, operating system software is rarely protected by other than these two methods.